首页
首页

Centos7 部署redis3.*集群

本来不打算写这篇文章的,因为感觉没什么技术含量,纯粹是翻译官网教程,但是在部署redis集群时,遇到了几个问题,想了想之后就有了这篇文章。

  1. 安装依赖
  2. 创建相关目录
  3. 下载redis源码和编译
  4. 更改配置,并放到相关目录
  5. 启动redis
  6. 创建集群
  7. 问题汇总

-安装依赖

yum -y install gcc openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel gcc-c++ automake autoconf ruby rubygems

  • 创建相关目录
mkdir -p /usr/redis-cluster/
mkdir 7000 7001 7002 7003 7004
cd redis-3.2.4/
make MALLOC=libc
make install
  • 更改配置,并放到相关目录
port 7000                                                                  #启动端口
cluster-enabled yes                                                # 启用集群
cluster-config-file nodes-7000.conf                   # 配置文件
cluster-node-timeout 5000                                  # 超时时间
appendonly yes 
daemonize yes                                                        # redis默认不是后台启动,这里修改成后台启动

cp ~/redis-2.3.4/redis.conf /usr/redis-cluster/7000/
cp ~/redis-2.3.4/redis.conf /usr/redis-cluster/7001/
cp ~/redis-2.3.4/redis.conf /usr/redis-cluster/7002/
cp ~/redis-2.3.4/redis.conf /usr/redis-cluster/7003/
cp ~/redis-2.3.4/redis.conf /usr/redis-cluster/7004/
cp ~/redis-2.3.4/redis.conf /usr/redis-cluster/7005/
  • 启动redis
redis-server /usr/local/redis-cluster/7000/redis.conf
redis-server /usr/local/redis-cluster/7001/redis.conf
redis-server /usr/local/redis-cluster/7002/redis.conf
redis-server /usr/local/redis-cluster/7003/redis.conf
redis-server /usr/local/redis-cluster/7004/redis.conf
redis-server /usr/local/redis-cluster/7005/redis.conf
  • 创建集群
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

命令解释: create表示创建一个新的集群 –replicas 1 表示我们要为集群中的每个主节点创建一个从节点,后面的ip:port表示redis实例的ip和端口号

命令执行后会自动分配主从节点并反馈到终端,由用户决定是否采用,输入yes即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
[root@localhost src]# ./redis-trib.rb create --replicas 1 192.168.159.128:7000 192.168.159.128:7001 192.168.159.128:7002 192.168.159.128:7003 192.168.159.128:7004 192.168.159.128:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.159.128:7000
192.168.159.128:7001
192.168.159.128:7002
Adding replica 192.168.159.128:7003 to 192.168.159.128:7000
Adding replica 192.168.159.128:7004 to 192.168.159.128:7001
Adding replica 192.168.159.128:7005 to 192.168.159.128:7002
M: c5e4c05c679d88fc869bb6e5d8afa55e532db96c 192.168.159.128:7000
slots:0-5460 (5461 slots) master
M: 1aa1a399c0fe99dba1a3ad95ec6cd2d904044874 192.168.159.128:7001
slots:5461-10922 (5462 slots) master
M: 89e0d504ce368a9590d0eaad522c4996449f8dfa 192.168.159.128:7002
slots:10923-16383 (5461 slots) master
S: 13a83678deae9838ad791c29e1b056311a6895f5 192.168.159.128:7003
replicates c5e4c05c679d88fc869bb6e5d8afa55e532db96c
S: 86be4ca2c8c4a1d817cfea5b6c0e50f6c4bf039e 192.168.159.128:7004
replicates 1aa1a399c0fe99dba1a3ad95ec6cd2d904044874
S: 34497803f4e4c55bad2a8d1c325b9909e22b829c 192.168.159.128:7005
replicates 89e0d504ce368a9590d0eaad522c4996449f8dfa
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
35647:M 21 Oct 13:28:01.035 # configEpoch set to 1 via CLUSTER SET-CONFIG-EPOCH
35684:M 21 Oct 13:28:01.035 # configEpoch set to 2 via CLUSTER SET-CONFIG-EPOCH
35701:M 21 Oct 13:28:01.035 # configEpoch set to 3 via CLUSTER SET-CONFIG-EPOCH
35727:M 21 Oct 13:28:01.035 # configEpoch set to 4 via CLUSTER SET-CONFIG-EPOCH
35755:M 21 Oct 13:28:01.035 # configEpoch set to 5 via CLUSTER SET-CONFIG-EPOCH
35784:M 21 Oct 13:28:01.036 # configEpoch set to 6 via CLUSTER SET-CONFIG-EPOCH
>>> Sending CLUSTER MEET messages to join the cluster
35647:M 21 Oct 13:28:01.068 # IP address for this node updated to 192.168.159.128
35784:M 21 Oct 13:28:01.169 # IP address for this node updated to 192.168.159.128
35684:M 21 Oct 13:28:01.169 # IP address for this node updated to 192.168.159.128
35755:M 21 Oct 13:28:01.170 # IP address for this node updated to 192.168.159.128
35727:M 21 Oct 13:28:01.170 # IP address for this node updated to 192.168.159.128
35701:M 21 Oct 13:28:01.170 # IP address for this node updated to 192.168.159.128
Waiting for the cluster to join...
35727:S 21 Oct 13:28:05.049 # Cluster state changed: ok
35755:S 21 Oct 13:28:05.049 # Cluster state changed: ok
35784:S 21 Oct 13:28:05.049 # Cluster state changed: ok
>>> Performing Cluster Check (using node 192.168.159.128:7000)
M: c5e4c05c679d88fc869bb6e5d8afa55e532db96c 192.168.159.128:7000
slots:0-5460 (5461 slots) master
M: 1aa1a399c0fe99dba1a3ad95ec6cd2d904044874 192.168.159.128:7001
slots:5461-10922 (5462 slots) master
M: 89e0d504ce368a9590d0eaad522c4996449f8dfa 192.168.159.128:7002
slots:10923-16383 (5461 slots) master
M: 13a83678deae9838ad791c29e1b056311a6895f5 192.168.159.128:7003
slots: (0 slots) master
replicates c5e4c05c679d88fc869bb6e5d8afa55e532db96c
M: 86be4ca2c8c4a1d817cfea5b6c0e50f6c4bf039e 192.168.159.128:7004
slots: (0 slots) master
replicates 1aa1a399c0fe99dba1a3ad95ec6cd2d904044874
M: 34497803f4e4c55bad2a8d1c325b9909e22b829c 192.168.159.128:7005
slots: (0 slots) master
replicates 89e0d504ce368a9590d0eaad522c4996449f8dfa
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

当出现 [OK] All 16384 slots covered. 表示集群创建成功

  • 问题汇总
    1
    /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)

创建集群时可能会出现上面这个错误

执行gem install redis即可修复

支持一下
扫一扫,我会更有动力更新
  • 微信扫一扫
  • 支付宝扫一扫